/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package DaoExtendido;

import Logico.Evento;
import java.util.ArrayList;
import ConectorBD.ConexionBD;
import Controladores.ControladorUsuario;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import Dao.EventoJpaController;
import Logico.Usuario;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.persistence.EntityManagerFactory;

public class EventoExtension extends EventoJpaController {

    ConexionBD conexion;
    Connection con;
    SimpleDateFormat formato;

    public EventoExtension(EntityManagerFactory emf) {

        super(emf);
        conexion = new ConexionBD();
        this.emf = emf;
        formato = new SimpleDateFormat("yyyy-MM-dd");
    }

    public ArrayList<Evento> buscarPorNombre(String nombre) {

        boolean flag = false;
        String consulta = "SELECT * FROM evento WHERE nombre = " + nombre + " order by idevento;";
        con = conexion.conectar();

        ArrayList<Evento> resultado = new ArrayList<>();

        Statement stmt;
        ResultSet rs;

        try {

            stmt = con.createStatement();
            rs = stmt.executeQuery(consulta);

            while (rs.next()) {
                Evento temp = new Evento();

                temp.setIdevento(Integer.parseInt(rs.getObject(1) + ""));
                temp.setNombre(rs.getObject(2) + "");
                temp.setDescripcion(rs.getObject(3) + "");
                String strFecha = rs.getObject(4) + "";
                Date fechaDate = null;
                try {
                    fechaDate = formato.parse(strFecha);
                } catch (ParseException ex) {
                    Logger.getLogger(CompetenciaExtension.class.getName()).log(Level.SEVERE, null, ex);
                }
                temp.setFechaInicio(fechaDate);

                strFecha = rs.getObject(5) + "";
                fechaDate = null;
                try {
                    fechaDate = formato.parse(strFecha);
                } catch (ParseException ex) {
                    Logger.getLogger(CompetenciaExtension.class.getName()).log(Level.SEVERE, null, ex);
                }
                temp.setFechaFin(fechaDate);

                ControladorUsuario controladorUsuario = new ControladorUsuario();
                temp.setCeduladirectorevento((controladorUsuario.buscar(Integer.parseInt(rs.getObject(6) + ""))));
                temp.setCeduladirectordeportivo((controladorUsuario.buscar(Integer.parseInt(rs.getObject(7) + ""))));
                temp.setCeduladirectoradministrativo((controladorUsuario.buscar(Integer.parseInt(rs.getObject(8) + ""))));
                temp.setCeduladirectorlogistica((controladorUsuario.buscar(Integer.parseInt(rs.getObject(9) + ""))));
                temp.setLogo(rs.getObject(10) + "");

                resultado.add(temp);
                flag = true;
            }

            if (flag == false) {
                resultado.add(new Evento());
            }

            rs.close();
            con.close();

        } catch (SQLException exp) {
            JOptionPane.showMessageDialog(null, exp.getMessage());
        }

        return resultado;

    }
}
